package com.huike.report.service;

import java.time.LocalDate;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import com.huike.business.domain.vo.BusinessChangeVO;
import com.huike.clues.domain.vo.ClueChangeVO;
import com.huike.report.domain.vo.*;

import com.huike.clues.domain.TbActivity;
import com.huike.common.core.domain.AjaxResult;
import com.huike.common.core.page.TableDataInfo;
import com.huike.report.domain.dto.ContractStatisticsDTO;
import com.huike.report.domain.dto.StatisticsPageDTO;
import com.huike.report.domain.vo.*;

import com.huike.contract.domain.TbContract;
import org.springframework.format.annotation.DateTimeFormat;

public interface IReportService {




    /**
     * 商机转化龙虎榜
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    List<BusinessChangeVO> businessChangeStatistics(LocalDate beginCreateTime, LocalDate endCreateTime,Integer deptId);

    /**
     * 线索转化龙虎榜
     * @param beginCreateTime
     * @param endCreateTime
     * @return
     */
    List<ClueChangeVO> salesStatistic(LocalDate beginCreateTime, LocalDate endCreateTime,Integer deptId);


//    IndexVo getIndex(String beginCreateTime, String endCreateTime);
    VulnerabilityMapVo getVulnerabilityMap(String beginCreateTime, String endCreateTime);


    List<ChannelStatisticsVO> chanelStatistics(LocalDate beginTime,LocalDate endTime);

    TableDataInfo  activityStatisticsList(Integer pageNum,Integer pageSize,
                                          LocalDate beginCreateTime,
                                          LocalDate endCreateTime,
                                          String name,String code,Integer total);
    List<ActivityStatistics> activityStatistics(LocalDate beginTime,LocalDate endTime);

    TableDataInfo cluesStatisticsList(Integer pageNum,Integer pageSize,
                                      LocalDate beginCreateTime,
                                      LocalDate endCreateTime,
                                      Long id,String owner);
    LineChartVO cluesStatistics(LocalDate begin,LocalDate end);
    LineChartVO contractStatistics(LocalDate begin, LocalDate end);

    TableDataInfo contractStatisticsList(ContractStatisticsDTO contractDTO);

    List<SubjectStatisticsVO> subjectStatistics(LocalDate begin,LocalDate end);

    LineChartVO salesStatistics(LocalDate begin,LocalDate end);

    TableDataInfo deptStatisticsList(StatisticsPageDTO dto);

    TableDataInfo ownerShipStatisticsList(StatisticsPageDTO dto);

    TableDataInfo channelStatisticsList(StatisticsPageDTO dto);
}
